package cn.iocoder.yudao.module.api.infrastructure.wechat.dto;

import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

@Data
public class WxaUploadOrderShippingInfoDTO {
    public static final int LOGISTICS_TYPE_EXPRESS = 1;
    public static final int LOGISTICS_TYPE_SAME_CITY = 2;
    public static final int LOGISTICS_TYPE_VIRTUAL = 3;
    public static final int LOGISTICS_TYPE_PICK_UP = 4;

    /**
     * 支付者，支付者信息(openid)
     */
    @NotEmpty(message = "支付者，支付者信息(openid)不能为空")
    private String openid;

    /**
     * 原支付交易对应的微信订单号
     */
    @NotEmpty(message = "原支付交易对应的微信订单号不能为空")
    private String transactionId;

    /**
     * 物流模式
     * 1、{@link #LOGISTICS_TYPE_EXPRESS} 实体物流配送采用快递公司进行实体物流配送形式
     * 2、{@link #LOGISTICS_TYPE_SAME_CITY} 同城配送
     * 3、{@link #LOGISTICS_TYPE_VIRTUAL} 虚拟商品，虚拟商品，例如话费充值，点卡等，无实体配送形式
     * 4、{@link #LOGISTICS_TYPE_PICK_UP} 到店自提
     */
    private Integer logisticsType;
    /**
     * 物流发货单号
     */
    private String logisticsNo;
    /**
     * 国内常用如下：
     * STO	申通快递
     * ZTO	中通快递
     * SF	顺丰快递
     * YZPY	邮政快递包裹
     * YTO	圆通速递
     * YD	韵达快递
     * JTSD	极兔快递
     * JD	京东物流
     * JDKY	京东快运
     * <a href="https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html#%E8%8E%B7%E5%8F%96%E8%BF%90%E5%8A%9Bid%E5%88%97%E8%A1%A8get-delivery-list">获取运力id列表</a>
     */
    private String expressCompany;
    /**
     * 商品信息，例如：微信红包抱枕*1个，限120个字以内
     */
    private String itemDesc;
    /**
     * 收件人手机号，当发货的快递公司为顺丰时，联系方式为必填
     */
    private String receiverContact;

}
